import java.util.Arrays;//导入包

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:lenovo
 * Date:2024-04-30
 * Time:9:54
 */
public class Test {
    public static int fun1(int n){
        if(n<10){
            return n;
        }
        return n%10+fun1(n/10);
    }
    public static int fun2(int n){
        //斐波那契数列，求第n项
        if(n==1||n==2){
            return 1;
        }
        return fun2(n-1)+fun2(n-2);
        //缺点:多路递归,不是单路径的。重复计算路径比较多
        //优点：代码量小
    }

    public static int fun3(int n){
        //循环算法
        int f1=1;
        int f2=1;
        int f3=0;
        for (int i = 3; i <=n ; i++) {
            f3=f1+f2;
            f1=f2;
            f2=f3;
        }
        return f3;
    }


    public static void main1(String[] args) {
        System.out.println(fun1(12345));
        System.out.println(fun2(5));
        System.out.println(fun3(5));
    }

    public static void main2(String[] args) {
        int[] array1={1,2,3,4,5,6};
        int[] array2=new int[]{1,2,3,4,5,6};
        //new用来创建一个新的对象
        int[] array3=new int[10];
        //int[] array3=new int[10]{1,2,3};//错误写法
        //默认都是0
        //int arr[]={1,2,3,4,5};可以但不建议
        int[] array4;
        array4=new int[4];

        //int [] array5;
        //array5={1,2,3,4};//错误
        //对数组进行整体初始化，只能是在定义这个数组的时候

        //每一种数据类型都有一个默认值
        //例如boolean的默认值是false
        boolean[] flag=new boolean[3];


        //array存的是数组首地址
        //array叫作引用变量,简称引用
        //int a=10;这就不叫作引用
    }

    public static void main(String[] args) {
        int[] array=new int[]{1,2,3,4,5,6};
        //遍历数组方法一：
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
        System.out.println("==========");
        //方法二：
        //foreach:增强for循环
        //缺点:无法获取到对应的小标
        //int x:数组里的元素
        //(int x:array)表示 把数组array的值取出来放到x里去
        for (int x:array) {
            System.out.print(x+" ");
        }
        System.out.println();
        System.out.println("==========");
        //方法三:操作数组的工具类
        String ret=Arrays.toString(array);
        System.out.println(ret);
        //使用Arrays.toString方法，把传入的参数array表示的数组以字符串的形式进行输出
    }
}
